#include <iostream>

class Test
{
public:
    Test()
    {
        std::cout<<"构造函数!\n";
    }

    Test(const Test& t)
    {
        std::cout<<"构造函数!\n";
    }

    void operator=(const Test& t)
    {
        std::cout << "赋值运算符重载深拷贝!\n";
    }

    ~Test()
    {
        std::cout<<"析构函数!\n";
    }
};

int main()
{
    // Test *t = (Test*)malloc(sizeof(Test));
    // free(t);

    // int *t = new int[3];
    // delete []t;

    // Test *t = new Test[3];
    // delete []t;

    
    return 0;
}